Recall Oriented Understudy for Gisting Evaluation (ROUGE) score

了解 ROUGE:自動評估文字摘要品質的指標

在人工智慧與自然語言處理領域,ROUGE(Recall-Oriented Understudy for Gisting Evaluation)是一種常用來衡量「自動產生文字摘要或回答」與「人工標準答案」之間相似度的評估方法(Lin, 2004)。

一、ROUGE 的核心概念

ROUGE 的基本想法很簡單:

如果一個電腦生成的摘要中,出現了越多與人工摘要中相同的字詞或句子片段,那麼它的品質就越好。

也就是說,ROUGE 用來衡量「自動摘要覆蓋了多少人工摘要中的重要內容」。

ROUGE 系列指標包含多種版本:

在實際應用中,最常使用的版本是 ROUGE-1、ROUGE-2 和 ROUGE-L。

二、ROUGE 的計算方式

在理解 ROUGE 之前,先要知道什麼是「n-gram」。

什麼是 n-gram?

n-gram 是一種把句子切成「連續字詞片段」的方式。

在 ROUGE-N 中,系統會比較「模型生成摘要」與「人工摘要」之間,這些 n-gram 的重疊程度。
如果兩段文字共享越多相同的 n-gram,代表語意越接近。

計算公式

以最常見的 ROUGE-N 為例,它的公式如下:

ROUGE-N=重疊的 n-gram 數參考摘要中的 n-gram 總數

這其實就是一種「召回率」(recall),指在所有正確答案元素裡,你找回了多少元素:

範例

類別 內容
參考摘要 "Cats sit on mats and purr."
模型摘要 "Cats sit and sleep on mats."

在這個例子中,人工摘要共有 6 個單字(cats, sit, on, mats, and, purr)。
模型摘要有 6 個單字,但其中只有 4 個(cats, sit, on, mats)出現在參考摘要裡。

所以:

ROUGE-1=46=0.67

意思是模型「召回」了人工摘要中約 67% 的內容。

三、結果的意義

ROUGE 的結果通常介於 0 到 1:

四、ROUGE 的 Python 範例

以下示範如何使用 Python 的 rouge_score 套件,計算兩段文字的 ROUGE 分數:

# 安裝套件
# pip install rouge-score

from rouge_score import rouge_scorer

# 建立 ROUGE 計算器
scorer = rouge_scorer.RougeScorer(['rouge1', 'rouge2', 'rougeL'], use_stemmer=True)

# 參考摘要與生成摘要
reference = "The cat sat on the mat."
candidate = "The cat is on the mat."

# 計算分數
scores = scorer.score(reference, candidate)

# 顯示結果
for metric, result in scores.items():
    print(f"{metric}: Precision={result.precision:.3f}, Recall={result.recall:.3f}, F1={result.fmeasure:.3f}")
中文處理

rouge_score無法處理中文,需再測試其他module,例如:

rouge_score說明

當我們使用 rouge_score 套件計算 ROUGE 時,它會輸出三個數值:PrecisionRecallF1

一、Precision

Precision 表示:

在AI模型產生的內容中,有多少部分是正確的?

它的計算方式是:

Precision=重疊的字詞數AI模型摘要的字詞總數

例如:

這代表模型說的內容中,有 60% 是「正確、出現在人工摘要中的」。


二、Recall

Recall 表示:

AI模型有多完整地涵蓋了人工摘要的內容?

它的計算方式是:

Recall=重疊的字詞數人工摘要的字詞總數

例如:

這代表模型「涵蓋了」人工摘要中 75% 的重點。


三、F1

Precision 和 Recall 常常有取捨關係:

因此 F1 分數用來平衡兩者:

F1=2×Precision×RecallPrecision+Recall

F1 越高,表示模型在「準確性」與「完整性」之間取得更好的平衡。


四、綜合理解與例子

指標 問題 理解方式 目標
Precision AI說的內容有多精準? 準不準 越高越好
Recall AI有多完整地說出重點? 全不全 越高越好
F1 準確與完整的平均表現 綜合分數 越高越好

假設AI模型回答「The cat on the mat」
而人工摘要是「The cat sat on the mat」:


Reference

Lin, C.-Y. (2004). ROUGE: a package for automatic evaluation of summaries. Text Summarization Branches Out, 74–81. https://aclanthology.org/W04-1013/